1. Field of the Invention
This invention relates to peer-to-peer networking, and more particularly to decentralized device and service description and discovery in a peer-to-peer networking environment.
2. Description of the Related Art
Peer-to-Peer Networking
The term peer-to-peer networking or computing (often referred to as P2P) may be applied to a wide range of technologies that greatly increase the utilization of information, bandwidth, and computing resources in the Internet. Frequently, these P2P technologies adopt a network-based computing style that neither excludes nor inherently depends on centralized control points. In addition to improving the performance of information discovery, content delivery, and information processing, such a style also can enhance the overall reliability and fault-tolerance of computing systems.
FIGS. 1A and 1B are examples illustrating the peer-to-peer model. FIG. 1A shows two peer devices 104A and 104B that are currently connected. Either of the two peer devices 104 may serve as a client of or a server to the other device. FIG. 1B shows several peer devices 104 connected over the network 106 in a peer group. In the peer group, any of the peer devices 104 may serve as a client of or a server to any of the other devices.
JXTA
Sun Microsystems' JXTA™ is an exemplary peer-to-peer platform. Peer-to-peer platforms such as JXTA may provide protocols for building networking applications that thrive in dynamic environments. JXTA technology is a set of open protocols that allow any connected device on the network ranging from cell phones and wireless PDAs to PCs and servers to communicate and collaborate in a peer-to-peer (P2P) manner. JXTA peers create a virtual network where any peer can interact with other peers and resources directly even when some of the peers and resources are behind firewalls and NATs or are on different network transports. In JXTA, every peer is identified by an ID, unique over time and space. Peer groups are user-defined collections of entities (peers) that may share a common interest. Peer groups are also identified by unique IDs. Peers may belong to multiple peer groups, discover other entities and peer resources (e.g. peers, peer groups, services, content, etc.) dynamically, and publish themselves and resources so that other peers can discover them.
Service Location Protocol (SLP)
The Service Location Protocol (SLP) is a protocol or method of organizing and locating the resources (such as printers, disk drives, databases, e-mail directories, and schedulers) in a network. SLP is intended to give users an easy-to-use interface to a network's resource information. The protocol defines and oversees communications and operations that take place among entities called user agents (subscribers or workstations), service agents (peripherals and resources), and directory agents (peripherals and resources within service agents). Rearrangement or maintenance of services, or installing new devices, is possible without the need for reconfiguring individual workstations.
Multicast DNS (MDNS)
Multicast DNS (MDNS) is a mechanism for using familiar DNS programming interfaces, packet formats and operating semantics in a small network where no conventional DNS server has been installed.
Universal Plug and Play (UPnP)
Universal Plug and Play (UPnP) is a standard that uses Internet and Web protocols to enable devices such as PCs, peripherals, intelligent appliances, and wireless devices to be plugged into a network and to automatically know about each other. With UPnP, when a user plugs a device into the network, the device will configure itself, acquire a TCP/IP address, and use a discovery protocol based on the Internet's Hypertext Transfer Protocol (HTTP) to announce its presence on the network to other devices.
Jini
Sun Microsystems' Jini™ network technology, which includes JavaSpaces Technology and Jini extensible remote invocation (Jini ERI), is an open architecture that enables developers to create network-centric services—whether implemented in hardware or software—that are highly adaptive to change. Jini technology may be used to build adaptive networks that are scalable, evolvable and flexible as typically required in dynamic computing environments.
Device/Service Description and Discovery Mechanisms
Conventional device/service description and discovery mechanisms used on networks, such as JINI, Apple Rendezvous, SLP, UPnP, DNS, and MDNS, have their own formats, and typically do not provide a way to uniquely identify resources across networks. These mechanisms typically do not interoperate, and many lack a discovery mechanism that is capable of spanning networks. These mechanisms typically either define enough to solve a specific device deployment such as a printer, or are limited to what they can describe by a size limitation imposed by the protocol.
Resources in subnetworks using at least some of these mechanisms may be named by humans; these names may not mean anything to other users that discover those resources from within or from without that subnetwork. In addition, there may be name collisions, which may cause problems in determining which resource is which, especially with mobile devices. For example, two or more users in such a subnetwork may name their local printer something like “My Printer”. This can lead to problems on the network; for example, users may attempt to access resources they do not have access to, or are simply the wrong resource.